Congestion occurs in a network when resource demands exceed capacity. In prior art communications networks, resource demands exceed capacity when data is sent on a path from a sender to a recipient and a node on the path cannot send data as quickly as it is received. In this case, the throughput of the node decreases and may drop to zero. When the throughput drops at the node, received packets build up in the node's memory, referred to as a buffer, increasing the number of accumulated packets forming a queue until the buffer is full and overflows. As the buffer overflows, data at the receiver may be delayed or the data may be lost. Such a state is generally a transient condition in a network as users of the network vie for resources during peak time periods. In the past, nodes in high-speed networks have been forced to include large buffers in an attempt to avoid overflow during periods of congestion. As a result of increasing buffer size, defined as accumulated packets waiting to be serviced, the average queue size increases. The average queue size for a buffer is the average number of packets present in the buffer.
One technique for avoiding large queues and large network delays is Random Early Detection (RED). RED is designed to accompany transport-layer congestion control protocols such as TCP and operates as a mechanism for regulating the amount of information that is sent to a node by decreasing the number of acknowledgment packets that are sent to the sender. The congestion control mechanism in TCP is a closed control system that reacts to unacknowledged packets by re-sending the unacknowledged packets and reducing the transmission rate. Systems that implement RED detect congestion by computing the average queue size as data is received into a buffer. When the average queue size exceeds a preset threshold, the node refuses to service i.e. “drops” a percentage of packets as determined by a control function.
The queue sizes determined by the RED technique, in combination with TCP congestion control, are subject to large size oscillations. Using the RED technique, parameters defining the control function are set by a system's administrator, without a methodology for determining values for the parameters. As such, the control function may be unstable and fail to adequately regulate the feedback to the TCP congestion control. The large oscillations that result under such circumstances in one node can propagate to other nodes and cause erratic behavior in the network. Because RED does not define a methodology for calculating the parameters, system administrators have used trial and error techniques. These trial and error techniques do not provide for a controllable network.